package com.macro.mall.service.impl;

import com.macro.mall.common.api.CommonResult;
import com.macro.mall.common.exception.Asserts;
import com.macro.mall.mapper.CurCourseVideoRelMapper;
import com.macro.mall.model.CurCourseVideoRel;
import com.macro.mall.service.CurCourseVideoRelService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;
/**
 * CurCourseVideoRel的服务接口的实现类
 * 
 * @author gaodx
 *
 */
@Slf4j
@Service
public class CurCourseVideoRelServiceImpl implements CurCourseVideoRelService {

    @Value("${log.isDebugEnabled:false}")
    private boolean isDebugEnabled;

	@Autowired
	private CurCourseVideoRelMapper curCourseVideoRelMapper;

	@Override
	public List<CurCourseVideoRel> find(CurCourseVideoRel value) {
		//TODO这里可以做通过Assist做添加查询
		List<CurCourseVideoRel> result = curCourseVideoRelMapper.selectCurCourseVideoRel(null);
		if (isDebugEnabled) {
			log.debug("执行获取CurCourseVideoRel数据集-->结果:", result);
		}
		return result;
	}
	@Override
	public CurCourseVideoRel findOne(Long id) {
		if (id == null) {
			if (isDebugEnabled) {
				log.debug("执行通过CurCourseVideoRel的id获得CurCourseVideoRel对象-->失败:id不能为空");
			}
            Asserts.fail("执行通过CurCourseVideoRel的id获得CurCourseVideoRel对象-->失败:id不能为空");
		}
		CurCourseVideoRel result = curCourseVideoRelMapper.selectCurCourseVideoRelById(id);
		if (isDebugEnabled) {
			log.debug("执行通过CurCourseVideoRel的id获得CurCourseVideoRel对象-->结果:", result);
		}
		return result;
	}

	@Override
	public CommonResult saveNotNull(CurCourseVideoRel value) {
		if (value == null) {
			if (isDebugEnabled) {
				log.debug("执行将CurCourseVideoRel中属性值不为null的数据保存到数据库-->失败:对象不能为空");
			}
                Asserts.fail("失败:对象不能为空");
		}
		int result = curCourseVideoRelMapper.insertNotNullCurCourseVideoRel(value);
		if (isDebugEnabled) {
			log.debug("执行将CurCourseVideoRel中属性值不为null的数据保存到数据库-->结果:", result);
		}
            return CommonResult.success(null);
	}
	@Override
	public CommonResult updateNotNullById(CurCourseVideoRel value) {
		if (value == null) {
			if (isDebugEnabled) {
				log.debug("执行通过CurCourseVideoRel的id更新CurCourseVideoRel中属性不为null的数据-->失败:对象为null");
			}
                Asserts.fail("执行通过CurCourseVideoRel的id更新CurCourseVideoRel中属性不为null的数据-->失败:对象为null");
		}
		int result = curCourseVideoRelMapper.updateNotNullCurCourseVideoRelById(value);
		if (isDebugEnabled) {
			log.debug("执行通过CurCourseVideoRel的id更新CurCourseVideoRel中属性不为null的数据-->结果:", result);
		}
        return CommonResult.success(null);
	}

	@Override
	public CommonResult deleteById(Long id) {
		if (id == null) {
			if (isDebugEnabled) {
				log.debug("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->失败:id不能为空");
			}
                Asserts.fail("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->失败:id不能为空");
		}
		int result = curCourseVideoRelMapper.deleteCurCourseVideoRelById(id);
		if (isDebugEnabled) {
			log.debug("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->结果:", result);
		}
        return CommonResult.success(null);
	}

    @Override
    public CommonResult deleteCurCourseVideoRel(Long id, Long courseId) {
        if (id == null) {
            if (isDebugEnabled) {
                log.debug("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->失败:id不能为空");
            }
            Asserts.fail("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->失败:id不能为空");
        }
        int result = curCourseVideoRelMapper.deleteCurCourseVideoRel(id,courseId);
        if (isDebugEnabled) {
            log.debug("执行通过CurCourseVideoRel的id删除CurCourseVideoRel-->结果:", result);
        }
        return CommonResult.success(null);
    }


}